/**
 * License under GNU's GPL 
 * TreatmentRecord.java 
 */


// $codepro.audit.disable largeNumberOfParameters
//M5 project for CS 2340
//Team 9

import java.util.Scanner;

/**
 * Class represents a treatment record
 * 
 * @author Team 9
 * @version 1.0
 * 
 */
public class TreatmentRecord {

	/**
	 * Overrides the toString() method to print the appropriate instance
	 * variables
	 * 
	 * @return String to be printed
	 */
	@Override
	public String toString() {
		return "treatmentRecord [attendingNurse=" + attendingNurse
				+ ", chiefComplaint=" + chiefComplaint + ", vitalSigns="
				+ vitalSigns + ", diagnosis=" + diagnosis + ", lastName="
				+ lastName + ", firstName=" + firstName + ", appointment="
				+ appointment + ", orders=" + orders + "]";
	}

	/**
	 * String variable for the name of the attending nurse
	 */
	private String attendingNurse;

	/**
	 * String variable for the chief complaint
	 */
	private String chiefComplaint;

	/**
	 * String variable for the vital signs
	 */
	private String vitalSigns;

	/**
	 * String variable for the diagnosis
	 */
	private String diagnosis;

	/**
	 * String variable for the patient's last name
	 */
	private String lastName;

	/**
	 * String variable for the patient's first name
	 */
	private String firstName;

	/**
	 * String variable for the appointment details
	 */
	private String appointment;

	/**
	 * Doctor orders which need to be included in the treatment record
	 */
	private DoctorsOrders orders;

	/**
	 * Constructor for the class
	 * 
	 * @param nurse
	 *            value for nurse
	 * @param comp
	 *            value for comp
	 * @param vitals
	 *            value for vitals
	 * @param diag
	 *            value for diag
	 * @param last
	 *            value for last
	 * @param first
	 *            value for first
	 * @param app
	 *            value for app
	 */
	public TreatmentRecord(String nurse, String comp, String vitals,
			String diag, String last, String first, String app) {
		attendingNurse = nurse;
		chiefComplaint = comp;
		vitalSigns = vitals;
		diagnosis = diag;
		lastName = last;
		firstName = first;
		appointment = app;
	}

	/**
	 * Method to delete all doctor's orders
	 */
	public void deleteDoctorsOrders() {
		orders = new DoctorsOrders();
	}

	/**
	 * Method to add new doctor's orders
	 */
	public void newDoctorsOrders() {
		final Scanner scan = new Scanner(System.in);
		System.out.println("Perscriptions: Enter 1 for Tylenol, 2 for Cold "
				+ "Medicine or 3 for Other");
		final int perscript = scan.nextInt();
		System.out.println("Lab Work Performed");
		final String labWP = scan.nextLine();
		System.out.println("Follow Up Instructions");
		final String followUp = scan.nextLine();
		System.out.println("Other Instructions");
		final String otherI = scan.nextLine();

		orders = new DoctorsOrders(perscript, labWP, followUp, otherI);
	}

	/**
	 * Method to generate an invoice
	 */
	public void generateInvoice() {
		System.out.println("Last Name:" + lastName);
		System.out.println("First Name:" + firstName);
		final int perscript = orders.getPerscriptions();
		new Invoice().generateInvoice(perscript);
	}

	/**
	 * Getter for orders
	 * 
	 * @return orders
	 */
	public DoctorsOrders getOrders() {
		return orders;
	}

	/**
	 * Setter for orders
	 * 
	 * @param orders
	 *            value for orders
	 */
	public void setOrders(DoctorsOrders orders) {
		this.orders = orders;
	}

	/**
	 * Setter for appointment
	 * 
	 * @param appointment
	 *            value for appointment
	 */
	public void setAppointment(String appointment) {
		this.appointment = appointment;
	}

	/**
	 * Getter for appointment
	 * 
	 * @return appointment
	 */
	public String getAppointment() {
		return appointment;
	}

	/**
	 * Setter for firstName
	 * 
	 * @param firstName
	 *            value for firstName
	 */
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	/**
	 * Getter for firstName
	 * 
	 * @return firstName
	 */
	public String getFirstName() {
		return firstName;
	}

	/**
	 * Setter for lastName
	 * 
	 * @param lastName
	 *            value for lastName
	 */
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	/**
	 * Getter for lastName
	 * 
	 * @return lastName
	 */
	public String getLastName() {
		return lastName;
	}

	/**
	 * Setter for diagnosis
	 * 
	 * @param diagnosis
	 *            value for diagnosis
	 */
	public void setDiagnosis(String diagnosis) {
		this.diagnosis = diagnosis;
	}

	/**
	 * Getter for diagnosis
	 * 
	 * @return diagnosis
	 */
	public String getDiagnosis() {
		return diagnosis;
	}

	/**
	 * Setter for vitalSigns
	 * 
	 * @param vitalSigns
	 *            value for vitalSigns
	 */
	public void setVitalSigns(String vitalSigns) {
		this.vitalSigns = vitalSigns;
	}

	/**
	 * Getter for vitalSigns
	 * 
	 * @return vitalSigns
	 */
	public String getVitalSigns() {
		return vitalSigns;
	}

	/**
	 * Setter for chiefComplaint
	 * 
	 * @param chiefComplaint
	 *            value for chiefComplaint
	 */
	public void setChiefComplaint(String chiefComplaint) {
		this.chiefComplaint = chiefComplaint;
	}

	/**
	 * Getter for chiefComplaint
	 * 
	 * @return chiefComplaint
	 */
	public String getChiefComplaint() {
		return chiefComplaint;
	}

	/**
	 * Setter for attendingNurse
	 * 
	 * @param attendingNurse
	 *            value for attendingNurse
	 */
	public void setAttendingNurse(String attendingNurse) {
		this.attendingNurse = attendingNurse;
	}

	/**
	 * Getter for attendingNurse
	 * 
	 * @return attendingNurse
	 */
	public String getAttendingNurse() {
		return attendingNurse;
	}

}
